package BitCreeekClient;

/**
 * Created by Ivan Litsvinenka e Emanuele Ricci
 * Date: 10-ago-2009
 * Time: 12.08.17
 */
public interface IPart {

    static final long serialVersionUID = 1L;

    /**
     * Ricava la grandezza della parte
     *
     * @return La grandezza della parte
     */
    public int getSize ();

    /**
     * Setta l'avaibility di una parte.
     *
     * @param i L'avaibility da settare.
     */
    public void setAvailability ( int i );


    /**
     * Ritorna l'avaibility di una parte.
     *
     * @return L'avaibility da della parte.
     */
    public int getAvailability ();

    public String toString ();

    /**
     * Imposta la parte come Completata.
     */
    public void setComplete ();

    /**
     * Imposta la parte come Incompleta.
     */
    public void setIncomplete ();

    /**
     * Imposta la parte come in download.
     */
    public void setDownloading ();

    /**
     * Ritorna lo stato della parte.
     *
     * @return Lo stato corrente della parte.
     */
    public PartStatusType getStatus ();


}
